<?php

require('configs/include.php');

class crear_reporte extends super_controller {

//cambiar display por
    public function preparar_reporte() {
        $codigoguia = $this->post->codigo_guia;
        $cod['moto']['codigo'] = $codigoguia;
        $options['moto']['lvl2'] = "preparar_guia";


        $this->orm->connect();
        $this->orm->read_data(array("moto"), $options, $cod);
        $moto = $this->orm->get_objects("moto");
        $this->orm->close();

        if (is_empty($moto)) {
            throw_exception('La guia no existe');
        }

        $cod['parametro_control']['codigo1'] = $moto[0]->get('codigo_modelo');
        $options['parametro_control']['lvl2'] = "parametro";

        $this->orm->connect();
        $this->orm->read_data(array("parametro_control"), $options, $cod);
        $pcontrol = $this->orm->get_objects("parametro_control");
        $this->orm->close();



        $options['parametro_control']['lvl2'] = "nuevo_codigo";
        $this->orm->connect();
        $this->orm->read_data(array("parametro_control"), $options);
        $ncodigo = $this->orm->get_objects("parametro_control");
        $this->orm->close();
        //print_r2($pcontrol);



        $cod['reporte']['fa'] = $codigoguia;
        $options['reporte']['lvl2'] = "fase_anterior";
        $this->orm->connect();
        $this->orm->read_data(array("reporte"), $options, $cod);
        $fasenterior = $this->orm->get_objects("reporte");
        $this->orm->close();



        $cod['reporte']['hr'] = $codigoguia;
        $options['reporte']['lvl2'] = "historial_reportes";
        $this->orm->connect();
        $this->orm->read_data(array("reporte"), $options, $cod);
        $historial_reportes = $this->orm->get_objects("reporte");
        $this->orm->close();



        $codreporte = $ncodigo[0]->get('codigo') + 1;
        $hllegada = '8:15';
        $hsalida = "8:59";
        $fanterior = $fasenterior[0]->get('estado_siguiente');
        $fsiguiente = '';
        $empleado = $this->session['empleado']['nombre'];

        $idempleado = $this->session['empleado']['identificacion'];


        $fecha = date("Y-m-d");

        $this->engine->assign('codreporte', $codreporte);
        $this->engine->assign('hllegada', $hllegada);
        $this->engine->assign('fecha', $fecha);
        $this->engine->assign('fanterior', $fanterior);
        $this->engine->assign('fsiguiente', $fsiguiente);
        $this->engine->assign('empleado', $empleado);
        $this->engine->assign('pcontrol', $pcontrol);
        $this->engine->assign('idempleado', $idempleado);
        $this->engine->assign('codigo_guia', $codigoguia);


        $this->engine->assign('historial_reportes', $historial_reportes);
    }

    public function query() {

        $options['guia']['lvl2'] = "all";
        $this->orm->connect();
        $this->orm->read_data(array("guia"), $options);
        $guias = $this->orm->get_objects("guia");
        $this->orm->close();
        $this->engine->assign('guias', $guias);
    }

    public function display() {

        switch ($this->session['empleado']['cargo']) {

            case "OPERARIO FABRICACION":
                $titulo = 'Crear Chasis';
                $select=2;
                break;
            case "SOLDADOR":
                $titulo = 'Aprobacion Chasis';
                $select=3;
                break;            

            case "PINTOR":
                $titulo = 'Pintura';
                $select=4;
                break;
            case "ENSAMBLADOR MOTOR":
                $titulo = 'Ensamble Motor';
                $select=5;
                break;
            case "MECANICO":
                $titulo = 'Aprobacion Motor';
                $select=6;            

                break;
            case "ENSAMBLADOR MOTO":
                $titulo = 'Ensamblar Motor';
                $select=7;

                break;
            case "CONTROLADOR RODAMIENTO":
                $titulo = 'Aprobacion Rodamiento';
                $select=8;

                break;
            case "CONTROLADOR CALIDAD":
                $titulo = 'Aprobacion Calidad';
                $select=9;
                break;


            default:
                $titulo = '';
                $select=1;
                break;
        }
        $nfase[1]='Crear Chasis';
        $nfase[2]='Aprobación chasis';
        $nfase[3]='Pintura';
        $nfase[4]='Ensamblaje motor';
        $nfase[5]='Aprobación motor';
        $nfase[6]='Ensamblaje moto';
        $nfase[7]='Aprobación rodamiento';
        $nfase[8]='Aprobación calidad';
        $nfase[9]='Fin Producción';
        
        $this->engine->assign('titulo', $titulo);
        $this->engine->assign('select', $select);
        $this->engine->assign('nfase', $nfase);
        
        if ($this->error == 1) {
            $this->engine->assign('type_warning', $this->type_warning);
            $this->engine->assign('msg_warning', $this->msg_warning);
            $this->temp_aux = 'message.tpl';
        }
        $this->engine->assign('title', 'Crear Reporte-Fase '.$titulo);
        $this->engine->display('header.tpl');
        $this->engine->display($this->temp_aux);
        $this->query();
        $this->engine->display('crear_reporte.tpl');
        $this->engine->display('footer.tpl');
    }

    public function cancelar() {
        session_destroy();
        unset($this->session);

        header('Location: http://localhost/glight/index.php');
    }

    public function guardar() {
        if (!is_empty($this->post->codigo)) {
            $reporte = new reporte($this->post);

            $this->orm->connect();
            $this->orm->insert_data("normal", $reporte);
            $this->orm->close();
            $this->temp_aux = 'message.tpl';


            $this->engine->assign('type_warning', "success");
            $this->engine->assign('msg_warning', "Reporte ingresado correctamente");
        } else {
            $this->temp_aux = 'message.tpl';


            $this->engine->assign('type_warning', "error");
            $this->engine->assign('msg_warning', "Ingrese Correctamente los datos");
        }
    }

    public function run() {
        try {
            if (isset($this->get->option)) {
                $this->{$this->get->option}();
            }
        } catch (Exception $e) {
            $this->error = 1;
            $this->msg_warning = $e->getMessage();
        }

        $this->display();
    }

}

$call = new crear_reporte();
$call->run();
?>